package com.tbit.uqbike.client.service;

import com.tbit.uqbike.client.pojo.Notice;
import com.tbit.uqbike.client.pojo.User;
import com.tbit.uqbike.client.pojo.vo.NoticeVO;

import java.util.List;

public interface NoticeService {

    /**
     * @description: 获取用户公告列表
     * @author: mo.shanyong
     * @date: 2025/2/19 17:16
     * @param: pageNum 页码
     * @param: pageSize 页长
     * @param: user 登录用户
     * @return: java.util.List<com.tbit.uqbike.object.pojo.Notice>
     */
    List<Notice> getUserNoticeList(Integer pageNum, Integer pageSize, User user,Integer accountId);

    /**
     * @description: 查询用户的公告总数
     * @author: mo.shanyong
     * @date: 2025/2/19 18:08
     * @param: user
     * @return: int
     */
    int getUserNoticeCount(User user);

    /**
     * @description: 获取用户未读总数
     * @author: mo.shanyong
     * @date: 2025/2/24 20:23
     * @param: platform 平台：1、客户端；2、管理端；3、运维端
     * @param: user
     * @return: int
     */
    int getUserNotReadNoticeCount(User user);

    /**
     * @description: 记录对公告的操作日志
     * @author: mo.shanyong
     * @date: 2025/2/20 15:52
     * @param: noticeId 公告id
     * @param: operateType 操作类型：1、曝光；3、点击；5、阅读(目前只记了这个)
     * @param: user
     * @return: java.lang.Integer
     */
    Integer recordNoticeLog(Integer noticeId , Integer operateType, User user);


    /**
     * 新增数据（会判断null字段，null字段不插入）
     *
     * @param noticeVO 实例对象
     */
    void insertCheckNull(NoticeVO noticeVO);
}
